package com.gitee.qdbp.general.common.api.sequence.model;

import com.gitee.qdbp.base.annotation.DataIsolation;
import com.gitee.qdbp.base.annotation.OperateTraces;

/**
 * 复杂序列号更新类
 *
 * @author zhh
 * @version 180509
 */
@OperateTraces(target = "where")
@DataIsolation(enable = false)
public class StrongSequenceUpdate extends StrongSequenceBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 类型是否更新为空值 **/
    private Boolean typeToNull;

    /** 子类型是否更新为空值 **/
    private Boolean subtypeToNull;

    /** 名称是否更新为空值 **/
    private Boolean nameToNull;

    /** 前缀是否更新为空值 **/
    private Boolean prefixToNull;

    /** 时间部分的格式是否更新为空值 **/
    private Boolean timeFormatToNull;

    /** 序号的位数(不含时间部分,仅在有前缀时生效)是否更新为空值 **/
    private Boolean digitNumberToNull;
    /** 序号的位数(不含时间部分,仅在有前缀时生效)的增加值 **/
    private Integer digitNumberAdd;

    /** 初始值(0表示随机初始值, 大于0表示指定初始值)是否更新为空值 **/
    private Boolean initValueToNull;
    /** 初始值(0表示随机初始值, 大于0表示指定初始值)的增加值 **/
    private Long initValueAdd;

    /** 当前值是否更新为空值 **/
    private Boolean currValueToNull;
    /** 当前值的增加值 **/
    private Long currValueAdd;

    /** 当前的时间部分是否更新为空值 **/
    private Boolean currTimeToNull;

    /** 是否每个时间段重新开始是否更新为空值 **/
    private Boolean roundToNull;

    /** 选项是否更新为空值 **/
    private Boolean optionsToNull;

    /** 更新操作的条件 **/
    private StrongSequenceWhere where;

    /** 判断类型是否更新为空值 **/
    public Boolean isTypeToNull() {
        return typeToNull;
    }

    /**
     * 设置类型是否更新为空值
     *
     * @param typeToNull 类型是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTypeToNull(Boolean typeToNull) {
        this.typeToNull = typeToNull;
    }

    /** 判断子类型是否更新为空值 **/
    public Boolean isSubtypeToNull() {
        return subtypeToNull;
    }

    /**
     * 设置子类型是否更新为空值
     *
     * @param subtypeToNull 子类型是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSubtypeToNull(Boolean subtypeToNull) {
        this.subtypeToNull = subtypeToNull;
    }

    /** 判断名称是否更新为空值 **/
    public Boolean isNameToNull() {
        return nameToNull;
    }

    /** 设置名称是否更新为空值 **/
    public void setNameToNull(Boolean nameToNull) {
        this.nameToNull = nameToNull;
    }

    /** 判断前缀是否更新为空值 **/
    public Boolean isPrefixToNull() {
        return prefixToNull;
    }

    /** 设置前缀是否更新为空值 **/
    public void setPrefixToNull(Boolean prefixToNull) {
        this.prefixToNull = prefixToNull;
    }

    /** 判断时间部分的格式是否更新为空值 **/
    public Boolean isTimeFormatToNull() {
        return timeFormatToNull;
    }

    /** 设置时间部分的格式是否更新为空值 **/
    public void setTimeFormatToNull(Boolean timeFormatToNull) {
        this.timeFormatToNull = timeFormatToNull;
    }

    /** 判断序号的位数(不含时间部分,仅在有前缀时生效)是否更新为空值 **/
    public Boolean isDigitNumberToNull() {
        return digitNumberToNull;
    }

    /**
     * 设置序号的位数(不含时间部分,仅在有前缀时生效)是否更新为空值
     *
     * @param digitNumberToNull 序号的位数(不含时间部分,仅在有前缀时生效)是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDigitNumberToNull(Boolean digitNumberToNull) {
        this.digitNumberToNull = digitNumberToNull;
    }

    /** 获取序号的位数(不含时间部分,仅在有前缀时生效)的增加值 **/
    public Integer getDigitNumberAdd() {
        return digitNumberAdd;
    }

    /** 设置序号的位数(不含时间部分,仅在有前缀时生效)的增加值 **/
    public void setDigitNumberAdd(Integer digitNumberAdd) {
        this.digitNumberAdd = digitNumberAdd;
    }

    /** 判断初始值(0表示随机初始值, 大于0表示指定初始值)是否更新为空值 **/
    public Boolean isInitValueToNull() {
        return initValueToNull;
    }

    /**
     * 设置初始值(0表示随机初始值, 大于0表示指定初始值)是否更新为空值
     *
     * @param initValueToNull 初始值(0表示随机初始值, 大于0表示指定初始值)是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setInitValueToNull(Boolean initValueToNull) {
        this.initValueToNull = initValueToNull;
    }

    /** 获取初始值(0表示随机初始值, 大于0表示指定初始值)的增加值 **/
    public Long getInitValueAdd() {
        return initValueAdd;
    }

    /** 设置初始值(0表示随机初始值, 大于0表示指定初始值)的增加值 **/
    public void setInitValueAdd(Long initValueAdd) {
        this.initValueAdd = initValueAdd;
    }

    /** 判断当前值是否更新为空值 **/
    public Boolean isCurrValueToNull() {
        return currValueToNull;
    }

    /**
     * 设置当前值是否更新为空值
     *
     * @param currValueToNull 当前值是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setCurrValueToNull(Boolean currValueToNull) {
        this.currValueToNull = currValueToNull;
    }

    /** 获取当前值的增加值 **/
    public Long getCurrValueAdd() {
        return currValueAdd;
    }

    /** 设置当前值的增加值 **/
    public void setCurrValueAdd(Long currValueAdd) {
        this.currValueAdd = currValueAdd;
    }

    /** 判断当前的时间部分是否更新为空值 **/
    public Boolean isCurrTimeToNull() {
        return currTimeToNull;
    }

    /** 设置当前的时间部分是否更新为空值 **/
    public void setCurrTimeToNull(Boolean currTimeToNull) {
        this.currTimeToNull = currTimeToNull;
    }

    /** 判断是否每个时间段重新开始是否更新为空值 **/
    public Boolean isRoundToNull() {
        return roundToNull;
    }

    /**
     * 设置是否每个时间段重新开始是否更新为空值
     *
     * @param roundToNull 是否每个时间段重新开始是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setRoundToNull(Boolean roundToNull) {
        this.roundToNull = roundToNull;
    }

    /** 判断选项是否更新为空值 **/
    public Boolean isOptionsToNull() {
        return optionsToNull;
    }

    /** 设置选项是否更新为空值 **/
    public void setOptionsToNull(Boolean optionsToNull) {
        this.optionsToNull = optionsToNull;
    }

    /** 获取更新操作的条件 **/
    public StrongSequenceWhere getWhere() {
        return where;
    }

    /** 获取更新操作的条件, force=是否强制返回非空条件 **/
    public StrongSequenceWhere getWhere(boolean force) {
        if (where == null && force) {
            where = new StrongSequenceWhere();
        }
        return where;
    }

    /** 设置更新操作的条件 **/
    public void setWhere(StrongSequenceWhere where) {
        this.where = where;
    }
}